//一最多的行
/*给你一个大小为 m x n 的二进制矩阵 mat ，请你找出包含最多 1 的行的下标（从 0 开始）以及这一行中 1 的数目。

如果有多行包含最多的 1 ，只需要选择 行下标最小 的那一行。

返回一个由行下标和该行中 1 的数量组成的数组。
m == mat.length 
n == mat[i].length 
1 <= m, n <= 100 
mat[i][j] 为 0 或 1
*/
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* rowAndMaximumOnes(int** mat, int matSize, int* matColSize, int* returnSize) {
    *returnSize=2;
    int*arr=(int*)calloc(2,sizeof(int));
    int count=0;
    int max=0;
    int index=0;
    for(int i=0;i<matSize;i++)
    {
        count=0;
        for(int j=0;j<matColSize[i];j++)
        {
            if(mat[i][j]==1)
            {
                count++;
                if(count>max)
                {
                    max=count;
                    index=i;
                }
            }
        }
    }
    arr[0]=index;
    arr[1]=max;
    return arr;
}



//统计匹配检索规则的物品数量
/*给你一个数组 items ，其中 items[i] = [typei, colori, namei] ，描述第 i 件物品的类型、颜色以及名称。

另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。

如果第 i 件物品能满足下述条件之一，则认为该物品与给定的检索规则 匹配 ：

ruleKey == "type" 且 ruleValue == typei 。
ruleKey == "color" 且 ruleValue == colori 。
ruleKey == "name" 且 ruleValue == namei 。
统计并返回 匹配检索规则的物品数量 。
1 <= items.length <= 104
1 <= typei.length, colori.length, namei.length, ruleValue.length <= 10
ruleKey 等于 "type"、"color" 或 "name"
所有字符串仅由小写字母组成*/

 int countMatches(char*** items, int itemsSize, int* itemsColSize, char* ruleKey,
                 char* ruleValue) {
    int i = 0;
    int count=0;
    switch (ruleKey[0]) {
    case 't':
        i = 0;
        break;
    case 'c':
        i = 1;
        break;
    case 'n':
        i = 2;
        break;
    }
    for (int j = 0; j < itemsSize; j++) {
       if( strcmp(items[j][i], ruleValue)==0)
       count++;
    }
    return count;
}